package com.ruoyi.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.business.domain.ChapterInfo;
import com.ruoyi.business.domain.bo.ChapterInfoBo;
import com.ruoyi.business.domain.bo.UserBo;
import com.ruoyi.business.domain.vo.CharpterTree;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.domain.vo.InnerObjVo;

import java.util.Collection;
import java.util.Collections;
import java.util.List;

/**
 * @author 最爱喝兽奶
 * @create 2022/7/31
 **/
public interface IChapterInfoService extends IService<ChapterInfo> {

    /**
     * 传入章节信息的业务对象，返回章节信息的分页数据
     * @param bo 章节信息的业务对象
     * @return
     */
    TableDataInfo getChapterInfoList(ChapterInfoBo bo);

    /**
     * 新增章节信息
     * @param bo
     * @return
     */
    String insertChapterInfo(ChapterInfoBo bo);

    /**
     * 修改章节信息
     * @param bo
     * @return
     */
    Boolean updateChapterInfo(ChapterInfoBo bo);

    /**
     * 删除章节信息
     * @param id
     * @return
     */
    Boolean deleteChapterInfo(Collection<Long> ids, Boolean isValid);

    /**
     * 上移操作
     * @param id
     * @return
     */
    Boolean moveUp(String id);

    /**
     * 下移操作
     * @param id
     * @return
     */
    Boolean moveDown(String id);

    /**
     * 查询课程下所有的章节和id的对应关系
     * @param courseId
     * @return
     */
    List<InnerObjVo> queryChapterInfoRef(String courseId);

    List<CharpterTree> queryChapterTree(Long uploadTeacher);

    List<ChapterInfo> queryChaptersByCourseId(Long courseId);
}
